這次要來介紹的是按鈕(Button)。按鈕在app上是非常普遍的開發元件,可以提供觸發後執行一連串開發者所設計的流程。
按鈕觸發執行必須要有監聽器,監聽使用者是否有作觸發動作以便做下一步動作。下方要實作UI設計與Java程式設計。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!--Button-->
<!--android:id 元件id-->
<!--android:text 顯示文字-->
<!--android:textSize 字符大小-->
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按鈕"
android:textSize="20dp" />
</RelativeLayout>
接下來要實作按鈕被觸發後的功能,而這個動作必須要有監聽器及觸發內容。下面三種實作方法可以達成目的:
方法一:
需要建立Button.OnClickListener的監聽物件
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<!--透過id綁定元件-->
button = findViewById(R.id.button);
//指定監聽的物件
button.setOnClickListener(listener);
}
//監聽器
Button.OnClickListener listener= new Button.OnClickListener() {
//實現按鈕觸發後行為
@Override
public void onClick(View v) {
//設定Button顯示文字
button.setText("按鈕被點擊");
}
};
}
以類別建立偵聽器
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<!--透過id綁定元件-->
Button button = findViewById(R.id.button);
//指定監聽的物件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//設定Button顯示文字
button.setText("按鈕被點擊");
}
});
}
}
先到XML檔找到Button並加入android:onClick
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按鈕"
android:textSize="20dp"
android:onClick="listener" />
接著到Java程式碼,建立觸發方法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<!--透過id綁定元件-->
Button button = findViewById(R.id.button);
}
public void listener(View view) {
//設定Button顯示文字
button.setText("按鈕被點擊");
}
}